package com.shujia.spark.core

import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD

object Demo09Sample {
  def main(args: Array[String]): Unit = {
    /**
     * sample：转换算子，用于抽样数据
     */

    val conf = new SparkConf()
    conf.setMaster("local")
    conf.setAppName(this.getClass.getSimpleName.replace("$", ""))
    val sc = new SparkContext(conf)

    val stuRDD: RDD[String] = sc.textFile("spark/data/stu/students.txt")

    /**
     * withReplacement：有无放回
     * fraction：比例，并不是精确的，只是大概
     * seed：随机数种子，如果值是固定的则每次取出来的结果都一样
     */
    stuRDD.sample(withReplacement = false, fraction = 0.01, seed = 1).foreach(println) // 由于固定了seed，则抽样结果可以复现
    stuRDD.sample(withReplacement = false, fraction = 0.01).foreach(println) // 每次都是随机的
  }

}
